Also erstmal guten Morgen zusammen und ich würde gerne die philosophischen Teile vom Anfang heute
nicht wiederholen, sondern gleich bei der mathematischen Kapitel weitermachen.
Also das hieß dann Basics of Neural Networks and Learning und wir werden also jetzt anschauen,
Moment, ja hier, wir werden jetzt also nochmal anschauen diese Zusammenfassungsfolie.
Die ist eingeteilt in eine Design-Fragestellung und in eine,
sagen wir mal, operationale Fragestellung. Die Design-Fragestellung ist, was für einen
Funktionstyp habe ich und welche grundsätzlichen Eigenschaften hat der. Das Wort eben, das ist
eben diese Geschichte mit der alternierenden konkratinierten Abbildung aus hochdimensionaler
linearen Algebra und dann eindimensionalen nicht-linearen Funktionen, so wie das hier
oben dargestellt ist. Und dann haben wir den Anspruch, dass wir uns bei komplexen Systemen
nicht nur entlang der Achsen hier bewegen können, sondern dass wir hier im freien Raum
Mathematik machen können. Da hat man eben früher gedacht, naja, das brauche ich halt immer mehr und
mehr und mehr, damit der Kreis immer größer wird, dass ich diese alternierenden Sachen immer weiter
aufblase. Und dann hat sich herausgestellt, nein, die kleinste Möglichkeit langt schon aus, um die
volle Größe von dem Kreis hier darzustellen. So, das endet natürlich damit, dass ich dann diese
Matrizen hier bestimmen können muss. Und um das zu verstehen, guckt man sich besser die Darstellung
nicht in Form von Formeln, sondern in Form von Architekturen an, weil die Architekturen das
Operationale besser darstellen. Und die sind immer, wenn ich die darstelle, die sind immer so gemacht,
wenn ein Vektor vorkommt, ist das ein Ellipsoid oder ein Kreis, wenn eine Matrix vorkommt hier,
ist das ein Fall. Und die beiden Sachen erlauben mir also eine 1 zu 1 Übersetzung von der Formel
hier als Zeichnung, als räumliche Darstellung. Ja gut, also wenn ich dann Zufallszeilen hier in
den Gewichten drin stehen habe, dann kann ich also hier von unten nach oben das durchrechnen,
kriegen Output raus, dann vergleiche ich Output mit Target und die Fehlerabweichung, das ist ja eine
beobachtete, gemessene Fehlerabweichung außerhalb von dem Netzwerk, die kann dann rückwärts
durchgeschleust werden entgegen der Fallrichtung von der Berechnung. Dann habe ich einen zweiten
Informationsfluss, der heißt dann Error Backpropagation. So, und das ist eben, wie wir dann
gesehen haben, automatisch eine schöne elegante Rechnung, die sagt, das Kreuzprodukt von dem,
was hier in Vorwärtsrichtung läuft, wo ist meine Maus? Ja hier, was hier in Vorwärtsrichtung läuft
und was den Richter, der Rückwärtsinformationsfluss, Kreuzprodukt von den beiden Sachen erlaubt mir die
erste Ableitung der Errorfunktion nach den Gewichten an dieser Stelle zu bestimmen. Naja,
mit gradienten Richtungen sollten wir dann auch eine Optimierung machen können. Und der interessante
Punkt ist halt, das findet nur immer lokal an dieser Stelle vom Netzwerk statt. Also wenn
ich über Kreuzprodukt hier rede, dann rede ich auch nur über diese Stelle hier. Wenn ich hier unten
drüber rede, eben nur über diese Stelle. Der Vorteil von dem Ding ist, dass das, wenn es tausendmal
größer wäre, ist es immer noch komplett lokal und es ist keine gute Idee, sich mathematisch
Methoden auszudenken, die diese Lokalität brechen, weil man dann automatisch die Skalierbarkeit für
große Systeme verliert. Also ein Beispiel für nichtlokalen Algorithmus wäre sowas wie
Verfahren, optimierungsverfahren, höhere Ordnung. Um die Parameter hier zu bestimmen, weil dann
bräuchte ich ja die Hessische Matrix, sprich die Kreuzableitungen zwischen allen Parametern,
die irgendwo im System vorkommen. Oder auch selbst bei so einem einfachen Algorithmus wie
Schrittweitensteuerung. Das ist eigentlich ein nichtlokaler Algorithmus, weil sie müssen ja
gucken, ich rechne vorwärts zurück und gucke mir an, ob ich die Errorfunktion hier jetzt wirklich
minimieren kann, wenn ich in diese Schrittrichtung gehe. Das heißt also, das ist ja auch eine globale
Information, die ich da auswerte. Also selbst Schrittweitensteuerung ist nicht ideal, wenn wir
darüber nachdenken, wir wollen nur lokale Algorithmen haben. Aber wenn man das eben tut,
dann hat man eine schöne mathematische Betrachtungsweise, die gekoppelt ist auch mit
einer Informatik-Sichtweise, weil rein lokale Betrachtungsweise ist natürlich ideal für
objektorientierte Programmierung. Was immer hier drin passiert, muss die anderen Teile in der
Architektur überhaupt nicht kümmern. Also das ist ein schönes Konzept, um objektorientierte
Programmierung zu machen. Eine kurze Frage, was ist genau gemeint mit dem Kreuzprodukt des
Presenters
Zugänglich über
Offener Zugang
Dauer
00:48:38 Min
Aufnahmedatum
2020-10-27
Hochgeladen am
2020-10-27 13:17:09
Sprache
de-DE